#ifndef TRGAMEDEVICE_H
#define TRGAMEDEVICE_H


/*
Just the MarCoreDevice, the internal tick is handled here and used
as reference by everything else in the engine to handle the timestep
simulation. The game loop is performed here.
*/

#include <irrlicht.h>
#include "trBolt.h"
#include "trGameClock.h"

namespace tetra
{

class trBolt;

typedef irr::core::array<trBolt> trBoltArray;

class trGameClock;

class trGameDevice : public trEventNode
{

    trBoltArray* bolts;

    trGameClock* game_clock;

///@todo
    //trDeviceParamter* device_parameters;

    bool running;

public:

    //! Default Constructor
    trGameDevice();

    //! Deconstructor
    ~trGameDevice();

    //! Insert a data key with defined ignition parameters.
    void resetParameters (/*CDeviceKey* key*/ );

    //! Starts the game engine.
    void run();

}; // end class trTetraGameDevice

}; //end namespace MarCore

#endif //TRGAMEDEVICE_H
